﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.Common;
    using WMS6.DataEntity;
    using WMS6.QueryEntity;

    [ServiceContract(Namespace="WMS6.Services")]
    public interface ITransportMgtService
    {
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string ConFirmPOD(PodInfo podInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string DeleteBolDetailInfo(List<string> BolDetailIDs, List<string> lineIDs, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string DeleteDeliveryOrder(List<string> deliveryOrderIDs, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string DeleteDispatchInfo(List<string> dispatchInfoDs, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string DeletePodInfo(List<string> podIDs, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string DeleteTrackingDetail(List<string> trackingDetailIDs, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        DataSet GetAllBolDetailInfo(PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        DataSet GetAllDeliveryOrderInfo(PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        DataSet GetAllDispatchInfo(PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        DataSet GetAllPodInfo(PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        DataSet GetAllTrackingDetailInfo(PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        List<BolDetailInfo> GetBolDetailInfoByDeliveryOrderIDsAndEquipmentTypeID(List<string> DeliveryOrderIDs, string EquipmentTypeIDs, string types, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(BolDetailInfo))]
        BolDetailInfo GetBolDetailInfoByID(string bolDetailID, string lineID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(BolDetailQueryEntity)), FaultContract(typeof(FaultDetail))]
        DataSet GetBolDetailInfoByQueryEntity(BolDetailQueryEntity bolDetailQuery, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        List<BolDetailInfo> GetBolDetailInfoListByID(string bolDetailID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(DeliveryOrderInfo)), FaultContract(typeof(FaultDetail)), OperationContract]
        DeliveryOrderInfo GetDeliveryOrderInfoByID(string deliveryOrderID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(DeliveryOrderQueryEntity)), OperationContract, FaultContract(typeof(FaultDetail))]
        DataSet GetDeliveryOrderInfoByQueryEntity(DeliveryOrderQueryEntity deliveryOrderQuery, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(DispatchInfo)), OperationContract]
        DispatchInfo GetDispatchInfoByID(string deliveryOrderID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(DispatchQueryEntity)), OperationContract, FaultContract(typeof(FaultDetail))]
        DataSet GetDispatchInfoByQueryEntity(DispatchQueryEntity dispatchQuery, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PodInfo)), FaultContract(typeof(FaultDetail)), OperationContract]
        PodInfo GetPodInfoByID(string podID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PodQueryEntity)), FaultContract(typeof(FaultDetail)), OperationContract]
        DataSet GetPodInfoByQueryEntity(PodQueryEntity podQuery, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(TrackingDetailInfo)), OperationContract]
        TrackingDetailInfo GetTrackingDetailInfoByID(string trackingDetailID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(TrackingDetailQueryEntity)), FaultContract(typeof(FaultDetail)), OperationContract]
        DataSet GetTrackingDetailInfoByQueryEntity(TrackingDetailQueryEntity trackingDetailQuery, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string ImportFormShippingOrder(string orderID, string vDeliveryOrderID, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string InsertBolDetailInfo(BolDetailInfo bolDetailInfo, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string InsertBolDetailList(List<BolDetailInfo> bolDetailInfos, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string InsertDeliveryOrder(DeliveryOrderInfo deliveryOrderInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string InsertDispatchAndBolDetailList(DispatchInfo dispatchInfo, List<BolDetailInfo> bolDetailInfos, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string InsertDispatchInfo(DispatchInfo dispatchInfo, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string InsertPodInfo(PodInfo podInfo, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string InsertTrackingDetail(TrackingDetailInfo trackingDetailInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string UpdateBolDetailInfo(BolDetailInfo bolDetailInfo, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string UpdateBolDetailList(List<BolDetailInfo> bolDetailInfos, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string UpdateDeliveryOrder(DeliveryOrderInfo deliveryOrderInfo, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string UpdateDispatchInfo(DispatchInfo dispatchInfo, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string UpdatePodInfo(PodInfo podInfo, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string UpdateTrackingDetail(TrackingDetailInfo trackingDetailInfo, PubParasInfo pubParasInfo);
    }
}

